package cn.com.huzo.service.trade;

import cn.com.huzo.model.entities.trade.ShippingOrderHeaderEntity;
import huzofw.service.GenericManager;
import java.util.Map;

/**
 * 发货单管理服务对象接口。
 *
 * @author 吴旭
 */
public interface ShippingOrderHeaderManager extends GenericManager<ShippingOrderHeaderEntity, Long> {

    /**
     * 得到新的单据号（根据规则自动生成）
     * <p>
     * @return @throws java.lang.Exception
     */
    String fetchNewBillNo() throws Exception;

    /**
     * 取得该发货单的主表及明细数据
     *
     * @param criterion
     * @return
     * @throws Exception
     */
    Map<String, Object> fetchByHeaderId(Map<String, Object> criterion) throws Exception;

    /**
     * 取得打印格式数据
     *
     * @param headerId 发货单ID
     * @return 打印格式数据
     * @throws java.lang.Exception
     */
    Map<String, Object> fetchPrintData(Long headerId) throws Exception;

    /**
     * 取得打印格式2数据
     *
     * @param headerId 发货单ID
     * @return 打印格式数据
     * @throws java.lang.Exception
     */
    Map<String, Object> fetchPrintData02(Long headerId) throws Exception;

    /**
     * 取得打印格式2数据
     *
     * @param headerId 发货单ID
     * @return 打印格式数据
     * @throws java.lang.Exception
     */
    Map<String, Object> fetchPrintData03(Long headerId) throws Exception;
}
